#include "ScriptedPch.h"
#include "hunterpet_vendor.h"

enum Creatures
{
	//CREATURE_FELSHETZER					= 19350,
	CREATURE_FLEDERMAUS					= 3866,
	CREATURE_NETHERROCHEN				= 18131,
	CREATURE_RAUBVOGELROT				= 21804,
	CREATURE_RAUBVOGELSCHWARZ			= 25817,
	CREATURE_RAUBVOGELWEISS				= 26369,
	//CREATURE_SCHLANGE					= 5224,
	CREATURE_SPINNE						= 20714,
	CREATURE_GORILLASCHWARZ				= 2521,
	CREATURE_GORILLAWEISS				= 6516,
	CREATURE_KREBS						= 23929,
	//CREATURE_KROKOLISK				= 20773,
	//CREATURE_AASVOGEL					= 16972,
	CREATURE_HYAENE						= 27294,
	CREATURE_KATZETIGER					= 7434,
	CREATURE_KATZELOEWE					= 28097,
	//CREATURE_KATZELUCHS					= 24043,
	CREATURE_RAPTORGRUEN					= 21124,
	CREATURE_RAPTORROT					= 4352,
	CREATURE_WEITSCHREITER				= 3246,
	CREATURE_WESPEROT					= 18283,
	CREATURE_WESPEBLAU					= 28086,
	CREATURE_WOLFRUESTUNG				= 17280,
	//CREATURE_WOLFGRAU					= 24128,
	//CREATURE_WOLFWEIß					= 26672,
	
	CREATURE_SCHIMAERE					= 20932,
	CREATURE_SILITHIDGELB				= 15230,
	CREATURE_SILITHIDROT				= 5460,
	CREATURE_RHINOZEROS					= 25488,
	CREATURE_WURMBRAUN					= 34920,
	CREATURE_WURMGELB					= 14237,
	CREATURE_KERNHUNDWEISS				= 17447,
	CREATURE_KERNHUNDROT				= 11671,
	CREATURE_TEUFELSSAURIERWEISS		= 6498,
	CREATURE_TEUFELSSAURIERSCHWARZ		= 20931,
	CREATURE_SKOLL						= 35189,
	CREATURE_LOQUE						= 32517,
	CREATURE_GONDRIA					= 33776,
	CREATURE_ARCTURIS					= 38453,
};

bool GossipHello_hunterpetvendor(Player *pPlayer, Creature *pCreature)
{
	if ((pPlayer->getClass() == CLASS_HUNTER))
	{
	pPlayer->ADD_GOSSIP_ITEM(0, "Normale Begleiter", GOSSIP_SENDER_MAIN, pets);
	pPlayer->ADD_GOSSIP_ITEM(0, "Exotische Begleiter", GOSSIP_SENDER_MAIN, exotic);
	pPlayer->SEND_GOSSIP_MENU(40009, pCreature->GetGUID());
    return true;
	}
	else
	{
		pPlayer->SEND_GOSSIP_MENU(40010, pCreature->GetGUID());
		return true;
	}
}

bool GossipSelect_hunterpetvendor(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action)
{
    switch(action)
    {
		case pets:
			//pPlayer->ADD_GOSSIP_ITEM(2, "Felshetzer", GOSSIP_SENDER_MAIN, felshetzer);
			pPlayer->ADD_GOSSIP_ITEM(2, "Fledermaus", GOSSIP_SENDER_MAIN, fledermaus);
			pPlayer->ADD_GOSSIP_ITEM(2, "Netherrochen", GOSSIP_SENDER_MAIN, netherrochen);
			pPlayer->ADD_GOSSIP_ITEM(2, "Raubvogel (Kaliri von Skettis)", GOSSIP_SENDER_MAIN, raubvogelrot);
			pPlayer->ADD_GOSSIP_ITEM(2, "Raubvogel (Oelbeschmierter Jungvogel)", GOSSIP_SENDER_MAIN, raubvogelschwarz);
			pPlayer->ADD_GOSSIP_ITEM(2, "Raubvogel (Kaiseradler)", GOSSIP_SENDER_MAIN, raubvogelweiss);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Schlange", GOSSIP_SENDER_MAIN, schlange);
			pPlayer->ADD_GOSSIP_ITEM(2, "Spinne", GOSSIP_SENDER_MAIN, spinne);
			pPlayer->ADD_GOSSIP_ITEM(2, "Gorilla (Blaumaehnengorilla)", GOSSIP_SENDER_MAIN, gorillaschwarz);
			pPlayer->ADD_GOSSIP_ITEM(2, "Gorilla (Donnerer von Un'Goro)", GOSSIP_SENDER_MAIN, gorillaweiss);
			pPlayer->ADD_GOSSIP_ITEM(2, "Krebs", GOSSIP_SENDER_MAIN, krebs);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Krokodil", GOSSIP_SENDER_MAIN, krokolisk);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Aasvogel", GOSSIP_SENDER_MAIN, aasvogel);
			pPlayer->ADD_GOSSIP_ITEM(2, "Hyaene", GOSSIP_SENDER_MAIN, hyaene);
			pPlayer->ADD_GOSSIP_ITEM(2, "Katze (Tiger)", GOSSIP_SENDER_MAIN, katzetiger);
			pPlayer->ADD_GOSSIP_ITEM(2, "Katze (Loewe)", GOSSIP_SENDER_MAIN, katzeloewe);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Katze (Luchs)", GOSSIP_SENDER_MAIN, katzeluchs);
			pPlayer->ADD_GOSSIP_ITEM(2, "Raptor (Dolchrachenteufelsbrut)", GOSSIP_SENDER_MAIN, raptorgruen);
			pPlayer->ADD_GOSSIP_ITEM(2, "Raptor (Blutsumpfkreischer)", GOSSIP_SENDER_MAIN, raptorrot);
			pPlayer->ADD_GOSSIP_ITEM(2, "Weitschreiter", GOSSIP_SENDER_MAIN, weitschreiter);
			pPlayer->ADD_GOSSIP_ITEM(2, "Wespe (Schwarzsichel)", GOSSIP_SENDER_MAIN, wesperot);
			pPlayer->ADD_GOSSIP_ITEM(2, "Wespe (Saphirblaue Schwarmwespe)", GOSSIP_SENDER_MAIN, wespeblau);
			pPlayer->ADD_GOSSIP_ITEM(2, "Wolf (Kriegshund der Zerschmetterten Hand)", GOSSIP_SENDER_MAIN, wolfruestung);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Wolf (Wilder Worg)", GOSSIP_SENDER_MAIN, wolfgrau);
			//pPlayer->ADD_GOSSIP_ITEM(2, "Wolf (Blutdurstiger Tundrawolf)", GOSSIP_SENDER_MAIN, wolfweiß);
			pPlayer->ADD_GOSSIP_ITEM(0, "Ich haette lieber einen Exotischen Begleiter...", GOSSIP_SENDER_MAIN, exotic);

			pPlayer->SEND_GOSSIP_MENU(40011, pCreature->GetGUID());
		break;
		
		case exotic:
			pPlayer->ADD_GOSSIP_ITEM(2, "Schimaere", GOSSIP_SENDER_MAIN, schimaere);
			pPlayer->ADD_GOSSIP_ITEM(2, "Silithid (Krieger der Vekniss)", GOSSIP_SENDER_MAIN, silithidgelb);
			pPlayer->ADD_GOSSIP_ITEM(2, "Silithid (Sandhaescher der Centipaar)", GOSSIP_SENDER_MAIN, silithidrot);
			pPlayer->ADD_GOSSIP_ITEM(2, "Rhinozeros", GOSSIP_SENDER_MAIN, rhinozeros);
			pPlayer->ADD_GOSSIP_ITEM(2, "Wurm (Tiefenjormungar)", GOSSIP_SENDER_MAIN, wurmbraun);
			pPlayer->ADD_GOSSIP_ITEM(2, "Wurm (Schlammwurm)", GOSSIP_SENDER_MAIN, wurmgelb);
			pPlayer->ADD_GOSSIP_ITEM(2, "Kernhund (Kurken)", GOSSIP_SENDER_MAIN, kernhundweiss);
			pPlayer->ADD_GOSSIP_ITEM(2, "Kernhund", GOSSIP_SENDER_MAIN, kernhundrot);
			pPlayer->ADD_GOSSIP_ITEM(2, "Teufelssaurier", GOSSIP_SENDER_MAIN, teufelssaurierweiss);
			pPlayer->ADD_GOSSIP_ITEM(2, "Teufelssaurier (Tyrantus)", GOSSIP_SENDER_MAIN, teufelssaurierschwarz);
			pPlayer->ADD_GOSSIP_ITEM(2, "Skoll", GOSSIP_SENDER_MAIN, skoll);
			pPlayer->ADD_GOSSIP_ITEM(2, "Loque'nahak", GOSSIP_SENDER_MAIN, loque);
			pPlayer->ADD_GOSSIP_ITEM(2, "Gondria", GOSSIP_SENDER_MAIN, gondria);
			pPlayer->ADD_GOSSIP_ITEM(2, "Arcturis", GOSSIP_SENDER_MAIN, arcturis);
			pPlayer->ADD_GOSSIP_ITEM(0, "Ich haette lieber einen Normalen Begleiter...", GOSSIP_SENDER_MAIN, pets);
			
			pPlayer->SEND_GOSSIP_MENU(40011, pCreature->GetGUID());
		break;
		/*
		case felshetzer:
			pCreature->SummonCreature(CREATURE_FELSHETZER, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
		*/
		case fledermaus:
			pCreature->SummonCreature(CREATURE_FLEDERMAUS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case netherrochen:
			pCreature->SummonCreature(CREATURE_NETHERROCHEN, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case raubvogelrot:
			pCreature->SummonCreature(CREATURE_RAUBVOGELROT, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;

		case raubvogelschwarz:
			pCreature->SummonCreature(CREATURE_RAUBVOGELSCHWARZ, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case raubvogelweiss:
			pCreature->SummonCreature(CREATURE_RAUBVOGELWEISS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
		/*	
		case schlange:
			pCreature->SummonCreature(CREATURE_SCHLANGE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
		*/	
		case spinne:
			pCreature->SummonCreature(CREATURE_SPINNE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case gorillaschwarz:
			pCreature->SummonCreature(CREATURE_GORILLASCHWARZ, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case gorillaweiss:
			pCreature->SummonCreature(CREATURE_GORILLAWEISS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case krebs:
			pCreature->SummonCreature(CREATURE_KREBS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case hyaene:
			pCreature->SummonCreature(CREATURE_HYAENE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case katzetiger:
			pCreature->SummonCreature(CREATURE_KATZETIGER, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case katzeloewe:
			pCreature->SummonCreature(CREATURE_KATZELOEWE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			/*
		case katzeluchs:
			pCreature->SummonCreature(CREATURE_KATZELUCHS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			*/
		case raptorgruen:
			pCreature->SummonCreature(CREATURE_RAPTORGRUEN, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case raptorrot:
			pCreature->SummonCreature(CREATURE_RAPTORROT, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case weitschreiter:
			pCreature->SummonCreature(CREATURE_WEITSCHREITER, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case wesperot:
			pCreature->SummonCreature(CREATURE_WESPEROT, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case wespeblau:
			pCreature->SummonCreature(CREATURE_WESPEBLAU, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case wolfruestung:
			pCreature->SummonCreature(CREATURE_WOLFRUESTUNG, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
			// -- Exotics -- //
			
		case schimaere:
			pCreature->SummonCreature(CREATURE_SCHIMAERE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case silithidgelb:
			pCreature->SummonCreature(CREATURE_SILITHIDGELB, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case silithidrot:
			pCreature->SummonCreature(CREATURE_SILITHIDROT, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case rhinozeros:
			pCreature->SummonCreature(CREATURE_RHINOZEROS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case wurmbraun:
			pCreature->SummonCreature(CREATURE_WURMBRAUN, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case wurmgelb:
			pCreature->SummonCreature(CREATURE_WURMGELB, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case kernhundweiss:
			pCreature->SummonCreature(CREATURE_KERNHUNDWEISS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case kernhundrot:
			pCreature->SummonCreature(CREATURE_KERNHUNDROT, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case teufelssaurierweiss:
			pCreature->SummonCreature(CREATURE_TEUFELSSAURIERWEISS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case teufelssaurierschwarz:
			pCreature->SummonCreature(CREATURE_TEUFELSSAURIERSCHWARZ, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case skoll:
			pCreature->SummonCreature(CREATURE_SKOLL, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case loque:
			pCreature->SummonCreature(CREATURE_LOQUE, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case gondria:
			pCreature->SummonCreature(CREATURE_GONDRIA, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
			
		case arcturis:
			pCreature->SummonCreature(CREATURE_ARCTURIS, pCreature->GetPositionX()+4, pCreature->GetPositionY(), pCreature->GetPositionZ()+2, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
			pPlayer->CLOSE_GOSSIP_MENU(); break;
    }

    return true;
}

void AddSC_hunterpetvendor()
{
    Script *newscript;
    newscript = new Script;
    newscript->Name = "hunterpetvendor";
    newscript->pGossipHello = &GossipHello_hunterpetvendor;
    newscript->pGossipSelect = &GossipSelect_hunterpetvendor;
    newscript->RegisterSelf();
}